home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 2207 / 2207.xpi / chrome / cooliris.jar / content / cooliris / cpvwSearch / coolirisSearch.js next >
Text File  |  2010-01-28  |  6KB  |  181 lines

  1. var Cc=Components.classes;
  2. var cpvw_search={showPreviewTimer:null,prevLinkElement:null,resize:false,loadingIframe:false,nodeCount:0,engineName:"google",isFirstTime:true,searchTerm:"",init:function(){
  3. this.load();
  4. },changeSize:function(){
  5. var _1=window.top.document.getElementById("sidebar-box").width;
  6. cpvw_get("outerBox").style.width=_1+"px";
  7. return;
  8. },modifyLinks:function(_2){
  9. for(var i=0;i<_2.length;i++){
  10. if(_2[i].getAttribute("cpvw_attached")=="true"){
  11. continue;
  12. }
  13. _2[i].setAttribute("cpvw_attached","true");
  14. _2[i].addEventListener("click",function(_4){
  15. _4.preventDefault();
  16. _4.stopPropagation();
  17. var _5=this;
  18. conDump("aaaa dsa fdsaf "+_5);
  19. if(_4.ctrlKey){
  20. conDump("cpvw search234343 "+_5);
  21. var _6=cpvw_search.getMainDocument();
  22. var _7=_6.defaultView;
  23. _7.getBrowser().selectedTab=_7.getBrowser().addTab(_5);
  24. }else{
  25. cpvw_search.showPreview(_5);
  26. }
  27. },false);
  28. _2[i].addEventListener("mouseover",function(_8){
  29. clearTimeout(cpvw_search.showPreviewTimer);
  30. var _9=this;
  31. if(_8.ctrlKey){
  32. cpvw_search.showPreviewTimer=setTimeout(function(){
  33. cpvw_search.showPreview(_9);
  34. },500);
  35. }
  36. },false);
  37. _2[i].addEventListener("mouseout",function(_a){
  38. if(_a.ctrlKey){
  39. clearTimeout(cpvw_search.showPreviewTimer);
  40. }
  41. },false);
  42. }
  43. },showPreview:function(_b){
  44. var _c=this.getMainDocument().getElementById("content");
  45. _b=_b.wrappedJSObject;
  46. if(_c.contentDocument.URL!=_b.href){
  47. if(_b!=null){
  48. _b.style.color="orange";
  49. }
  50. _c.loadURI(_b.href);
  51. }
  52. },getMainDocument:function(){
  53. var _d=window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);
  54. return _d.document;
  55. },load:function(){
  56. if(cpvw_search.isFirstTime){
  57. var _e=this.getMainDocument();
  58. var _f=_e.defaultView;
  59. if(cpvw_search.searchTerm!=""){
  60. cpvw_get("cpvw_searchFrame").loadURI(this.engine().searchUrl.replace("$$",encodeURIComponent(this.searchTerm)));
  61. }else{
  62. cpvw_get("cpvw_searchFrame").loadURI(this.engine().home);
  63. }
  64. cpvw_get("cpvw_searchFrame").removeEventListener("load",cpvw_search.searchFrameLoad,true);
  65. cpvw_get("cpvw_searchFrame").addEventListener("load",cpvw_search.searchFrameLoad,true);
  66. cpvw_get("outerBox").style.width=this.engine().width+"px";
  67. window.top.document.getElementById("sidebar-box").width=this.engine().width;
  68. }
  69. return;
  70. },searchFrameLoad:function(){
  71. this.loadingIframe=false;
  72. var _10=cpvw_get("cpvw_scrollFrame");
  73. _10.loadURI("chrome://cooliris/content/coolirisBlank.htm");
  74. this.nodeCount=0;
  75. cpvw_get("cpvw_searchFrame").contentWindow.addEventListener("scroll",cpvw_search.onScroll,true);
  76. var doc=cpvw_get("cpvw_searchFrame").contentDocument;
  77. var _12=doc.evaluate(cpvw_search.engine().searchBox,doc.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
  78. for(var i=0;i<_12.snapshotLength;i++){
  79. contentNode=_12.snapshotItem(i);
  80. }
  81. if(contentNode){
  82. cpvw_search.searchTerm=contentNode.value;
  83. }
  84. var _14=doc.getElementsByTagName("a");
  85. cpvw_search.modifyLinks(_14);
  86. doc.addEventListener("DOMNodeInserted",function(evt){
  87. var _16=evt.target;
  88. var _17;
  89. if(_16 instanceof HTMLLinkElement){
  90. _17=[];
  91. _17.push(_16);
  92. cpvw_search.modifyLinks(_17);
  93. }else{
  94. if(_16.getElementsByTagName){
  95. _17=_16.getElementsByTagName("a");
  96. cpvw_search.modifyLinks(_17);
  97. }
  98. }
  99. },false);
  100. },onScroll:function(evt){
  101. var wnd=cpvw_get("cpvw_searchFrame").contentWindow;
  102. if(wnd.scrollY>wnd.scrollMaxY-(wnd.scrollMaxY/4)){
  103. cpvw_search.fetchData();
  104. }
  105. },fetchData:function(){
  106. conDump("fetch data");
  107. if(cpvw_search.loadingIframe){
  108. return;
  109. }
  110. cpvw_search.loadingIframe=true;
  111. var _1a=cpvw_get("cpvw_searchFrame").contentDocument;
  112. if(!cpvw_get("cpvw_end",_1a)){
  113. var _1b;
  114. var _1c=_1a.evaluate(cpvw_search.engine().contentXPath,_1a.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
  115. if(_1c.snapshotLength==0){
  116. return;
  117. }
  118. for(var i=0;i<_1c.snapshotLength;i++){
  119. _1b=_1c.snapshotItem(i);
  120. }
  121. if(!_1b){
  122. return;
  123. }
  124. var _1e=_1a.createElement("DIV");
  125. _1e.setAttribute("id","cpvw_end");
  126. if(_1b){
  127. _1b.parentNode.insertBefore(_1e,_1b.nextSibling);
  128. }
  129. }
  130. var _1f="";
  131. var _20=cpvw_get("cpvw_scrollFrame");
  132. var _21=_20.contentDocument;
  133. var _22=(_21.URL=="chrome://cooliris/content/coolirisBlank.htm")?_1a:_21;
  134. var _23=_22.evaluate(cpvw_search.engine().linkXPath,_22.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
  135. if(_23.snapshotLength==0){
  136. return;
  137. }
  138. for(var i=0;i<_23.snapshotLength;i++){
  139. _1f=_23.snapshotItem(i).href;
  140. }
  141. cpvw_get("cpvw_scrollFrame").removeEventListener("load",cpvw_search.scrollFrameLoad,true);
  142. cpvw_get("cpvw_scrollFrame").addEventListener("load",cpvw_search.scrollFrameLoad,true);
  143. _20.loadURI(_1f);
  144. conDump("fetchData "+cpvw_search.nodeCount+", "+_1f);
  145. },scrollFrameLoad:function(){
  146. conDump("scrollFrameLoad "+cpvw_search.nodeCount);
  147. try{
  148. var _24=cpvw_get("cpvw_scrollFrame");
  149. var _25=_24.contentDocument;
  150. if(_25.URL=="chrome://cooliris/content/coolirisBlank.htm"){
  151. return;
  152. }
  153. var _26=cpvw_get("cpvw_searchFrame").contentDocument;
  154. var _27=cpvw_get("cpvw_end",_26);
  155. var _28;
  156. var _29=_25.evaluate(cpvw_search.engine().contentXPath,_25.body,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
  157. if(_29.snapshotLength==0){
  158. return;
  159. }
  160. for(var i=0;i<_29.snapshotLength;i++){
  161. _28=_29.snapshotItem(i);
  162. }
  163. if(_27){
  164. _27.parentNode.insertBefore(_28.cloneNode(true),_27);
  165. }
  166. }
  167. catch(ex){
  168. alert(ex);
  169. }
  170. cpvw_search.loadingIframe=false;
  171. cpvw_search.nodeCount++;
  172. },changeEngine:function(_2b){
  173. this.engineName=_2b;
  174. this.load();
  175. },engine:function(){
  176. return cpvw_searchEngine[cpvw_search.engineName];
  177. },unload:function(){
  178. }};
  179. var cpvw_searchEngine={"google":{"home":"http://www.google.com","linkXPath":"id(\"nav\")//td[last()]/a","contentXPath":"id(\"res\")","width":620,"linkParentTag":"li","searchBox":"//input[@name='q']","searchUrl":"http://www.google.com/search?q=$$"},"bing":{"home":"http://www.bing.com","linkXPath":"id(\"results_container\")//a[@class=\"sb_pagN\"]","contentXPath":"id(\"results_container\")","width":720,"linkParentTag":"li","searchBox":"id(\"sb_form_q\")","searchUrl":"http://www.bing.com/search?q=$$"},"yahoo":{"home":"http://www.yahoo.com","linkXPath":"id(\"pg-next\")","contentXPath":"id(\"web\")","width":720,"linkParentTag":"li","searchBox":"//input[@name='p']","searchUrl":"http://search.yahoo.com/search?p=$$"}};
  180.  
  181.